package sv.edu.ues.igf115.clave1.dominio;
// Generated 08-nov-2013 23:15:45 by Hibernate Tools 3.2.1.GA


import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Cliente generated by hbm2java
 */
@Entity
@Table(name="cliente"
    ,catalog="clave1"
)
public class Cliente  implements java.io.Serializable {


     private String idCliente;
     private TipoCliente tipoCliente;
     private String apellidoCliente;
     private String direccion;
     private String email;
     private Date fechaNac;
     private String nombreCliente;
     private String telefono;
     private Set<ClienteTarjetaEstado> clienteTarjetaEstados = new HashSet<ClienteTarjetaEstado>(0);

    public Cliente() {
    }

	
    public Cliente(String idCliente, TipoCliente tipoCliente, String apellidoCliente, String direccion, String email, Date fechaNac, String nombreCliente, String telefono) {
        this.idCliente = idCliente;
        this.tipoCliente = tipoCliente;
        this.apellidoCliente = apellidoCliente;
        this.direccion = direccion;
        this.email = email;
        this.fechaNac = fechaNac;
        this.nombreCliente = nombreCliente;
        this.telefono = telefono;
    }
    public Cliente(String idCliente, TipoCliente tipoCliente, String apellidoCliente, String direccion, String email, Date fechaNac, String nombreCliente, String telefono, Set<ClienteTarjetaEstado> clienteTarjetaEstados) {
       this.idCliente = idCliente;
       this.tipoCliente = tipoCliente;
       this.apellidoCliente = apellidoCliente;
       this.direccion = direccion;
       this.email = email;
       this.fechaNac = fechaNac;
       this.nombreCliente = nombreCliente;
       this.telefono = telefono;
       this.clienteTarjetaEstados = clienteTarjetaEstados;
    }
   
     @Id 
    
    @Column(name="id_cliente", unique=true, nullable=false, length=5)
    public String getIdCliente() {
        return this.idCliente;
    }
    
    public void setIdCliente(String idCliente) {
        this.idCliente = idCliente;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_tipo_cliente", nullable=false)
    public TipoCliente getTipoCliente() {
        return this.tipoCliente;
    }
    
    public void setTipoCliente(TipoCliente tipoCliente) {
        this.tipoCliente = tipoCliente;
    }
    
    @Column(name="apellido_cliente", nullable=false, length=45)
    public String getApellidoCliente() {
        return this.apellidoCliente;
    }
    
    public void setApellidoCliente(String apellidoCliente) {
        this.apellidoCliente = apellidoCliente;
    }
    
    @Column(name="direccion", nullable=false, length=100)
    public String getDireccion() {
        return this.direccion;
    }
    
    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }
    
    @Column(name="email", nullable=false, length=25)
    public String getEmail() {
        return this.email;
    }
    
    public void setEmail(String email) {
        this.email = email;
    }
    @Temporal(TemporalType.DATE)
    @Column(name="fecha_nac", nullable=false, length=10)
    public Date getFechaNac() {
        return this.fechaNac;
    }
    
    public void setFechaNac(Date fechaNac) {
        this.fechaNac = fechaNac;
    }
    
    @Column(name="nombre_cliente", nullable=false, length=45)
    public String getNombreCliente() {
        return this.nombreCliente;
    }
    
    public void setNombreCliente(String nombreCliente) {
        this.nombreCliente = nombreCliente;
    }
    
    @Column(name="telefono", nullable=false, length=9)
    public String getTelefono() {
        return this.telefono;
    }
    
    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="cliente")
    public Set<ClienteTarjetaEstado> getClienteTarjetaEstados() {
        return this.clienteTarjetaEstados;
    }
    
    public void setClienteTarjetaEstados(Set<ClienteTarjetaEstado> clienteTarjetaEstados) {
        this.clienteTarjetaEstados = clienteTarjetaEstados;
    }




}


